home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / os20 / wb / toolmanager2_0.lha / ToolManager / Source / library / locale.c < prev    next >
C/C++ Source or Header  |  1992-09-26  |  3KB  |  93 lines

  1. /*
  2.  * locale.c  V2.0
  3.  *
  4.  * locale stuff
  5.  *
  6.  * (c) 1990-1992 Stefan Becker
  7.  */
  8.  
  9. #include "ToolManagerLib.h"
  10.  
  11. /* Broker port data */
  12. struct NewBroker BrokerData={NB_VERSION,"ToolManager", "ToolManager V"
  13.                              TMVERSION " © " TMCRYEAR " Stefan Becker",
  14.                              NULL,NBU_UNIQUE,0,0,NULL,0};
  15.  
  16. /* Menu data */
  17. struct NewMenu DockMenu[]={
  18.                            {NM_TITLE,NULL,NULL,0,~0,NULL},
  19.                             {NM_ITEM,NULL,NULL,0,~0,MENU_CLOSE},
  20.                             {NM_ITEM,NULL,NULL,0,~0,MENU_QUIT},
  21.                            {NM_END}
  22.                           };
  23.  
  24. static char *AppStrings[]={
  25.                            MSG_HANDLER_COMMODITIES_DESCRIPTION_STR,
  26.                            MSG_HANDLER_DOCK_MENU_LABEL_STR,
  27.                            MSG_HANDLER_CLOSE_MENU_LABEL_STR,
  28.                            MSG_HANDLER_CLOSE_MENU_SHORTCUT_STR,
  29.                            MSG_HANDLER_QUIT_MENU_LABEL_STR,
  30.                            MSG_HANDLER_QUIT_MENU_SHORTCUT_STR,
  31.                           };
  32.  
  33. /* misc. data */
  34. struct Library *LocaleBase=NULL;
  35. static struct Catalog *Catalog=NULL;
  36.  
  37. /* Get locale strings */
  38. void GetLocale(void)
  39. {
  40.  /* Try to open locale.library */
  41.  if (LocaleBase=OpenLibrary("locale.library",38)) {
  42.  
  43.   DEBUG_PRINTF("Locale: 0x%08lx\n",LocaleBase);
  44.  
  45.   /* Try to get catalog for current language */
  46.   if (Catalog=OpenCatalog(NULL,"toolmanager.catalog",
  47.                           OC_BuiltInLanguage, "english",
  48.                           OC_Version,         2,
  49.                           TAG_DONE)) {
  50.  
  51.    DEBUG_PRINTF("Catalog: 0x%08lx\n",Catalog);
  52.  
  53.    /* Get translation strings */
  54.    BrokerData.nb_Descr=GetCatalogStr(Catalog,
  55.                                      MSG_HANDLER_COMMODITIES_DESCRIPTION,
  56.                                      AppStrings[0]);
  57.    DockMenu[0].nm_Label=GetCatalogStr(Catalog,MSG_HANDLER_DOCK_MENU_LABEL,
  58.                                       AppStrings[1]);
  59.    DockMenu[1].nm_Label=GetCatalogStr(Catalog,MSG_HANDLER_CLOSE_MENU_LABEL,
  60.                                       AppStrings[2]);
  61.    DockMenu[1].nm_CommKey=GetCatalogStr(Catalog,
  62.                                         MSG_HANDLER_CLOSE_MENU_SHORTCUT,
  63.                                         AppStrings[3]);
  64.    DockMenu[2].nm_Label=GetCatalogStr(Catalog,MSG_HANDLER_QUIT_MENU_LABEL,
  65.                                       AppStrings[4]);
  66.    DockMenu[2].nm_CommKey=GetCatalogStr(Catalog,MSG_HANDLER_QUIT_MENU_SHORTCUT,
  67.                                         AppStrings[5]);
  68.   }
  69.  }
  70.  
  71.  /* Set defaults */
  72.  if (!Catalog) {
  73.   BrokerData.nb_Descr=AppStrings[0];
  74.   DockMenu[0].nm_Label=AppStrings[1];
  75.   DockMenu[1].nm_Label=AppStrings[2];
  76.   DockMenu[1].nm_CommKey=AppStrings[3];
  77.   DockMenu[2].nm_Label=AppStrings[4];
  78.   DockMenu[2].nm_CommKey=AppStrings[5];
  79.  }
  80. }
  81.  
  82. void FreeLocale(void)
  83. {
  84.  if (LocaleBase) {
  85.   if (Catalog) {
  86.    CloseCatalog(Catalog);
  87.    Catalog=NULL;
  88.   }
  89.   CloseLibrary(LocaleBase);
  90.   LocaleBase=NULL;
  91.  }
  92. }
  93.